package param

import (
	"src/model"
)

type LoginData struct {
	Code          string   `bson:"code" json:"code" query:"code" validate:"required"`
	UserInfo      userInfo `json:"userInfo"`
	RawData       string   `json:"rawData"`
	Signature     string   `json:"signature"`
	EncryptedData string   `json:"encryptedData"`
	Iv            string   `json:"iv"`
}
type LoginTest struct {
	Openid string `bson:"openid" json:"openid"`
	Secret string `bson:"secret" json:"secret"`
}

type CodeParam struct {
	Code string `json:"code" query:"code" validate:"required"`
}

type userInfo struct {
	Nickname  string `json:"nickName"`  // 用户昵称
	Gender    int    `json:"gender"`    // 1代表男性，0代表女性
	Province  string `json:"province"`  // 省份
	City      string `json:"city"`      // 城市
	Country   string `json:"country"`   // 国家
	AvatarURL string `json:"avatarUrl"` // 用户头像
	Language  string `json:"language"`  // 语言
}

type Hotkey struct {
	Key string `json:"key" bson:"key"`
}

type TypeParam struct {
	Num    int    `bson:"num" json:"num"`
	Type   int    `json:"type" query:"type"`
	Suffix string `bson:"suffix" json:"suffix"`
}

type ApplicationParam struct {
	Id   string   `bson:"id" json:"id"`
	Tags []string `bson:"tags" json:"tags"`
}

type GetComment struct {
	Postid  string `bson:"post_id" json:"post_id"`
	Page    int    `bson:"page" json:"page"`
	PerPage int    `bson:"per_page" json:"per_page"`
}

type Qiniu struct {
	Upload_token string    `bson:"upload_token" json:"upload_token"`
	Key          string    `bson:"key" json:"key"`
	Img          model.Img `bson:"img" json:"img"`
}

type GetReply struct {
	Postid    string `bson:"postid" json:"postid"`
	CommentId string `bson:"comment_id" json:"comment_id"`
	ReplyId   string `bson:"reply_id" json:"reply_id"`
	Page      int    `bson:"page" json:"page"`
	PerPage   int    `bson:"per_page" json:"per_page"`
}

type Message struct {
	Text     string
	Img      model.Img
	Message  model.Message
	UserInfo model.User
}

type Comment struct {
	Comment model.Comment
	Reply   []model.Reply
}

type GetForumpost struct {
	Key     string `bson:"key" json:"key"`
	T       int    `json:"type" bson:"type"`
	Tags    int    `bson:"tags" json:"tags"`
	Page    int    `bson:"page" json:"page"`
	PerPage int    `bson:"per_page" json:"per_page"`
	Method  int    `bson:"method" json:"method"`
}

type GetForumpostByUser struct {
	Id      int `bson:"id" json:"id"`
	Page    int `bson:"page" json:"page"`
	PerPage int `bson:"per_page" json:"per_page"`
}

type Tipoff struct {
	Id   string `bson:"id" json:"id"`
	Text string `bson:"text" json:"text"`
}

type Star struct {
	Id     string `bson:"id" json:"id"`
	Action int    `bson:"action" json:"action"`
}

type UserMsgChange struct {
	Name   string `bson:"name" json:"name"`
	Gender int    `bson:"gender" json:"gender"`
	School int    `bson:"school" json:"school"`
	Grade  string `bson:"grade" json:"grade"`
}

type Id struct {
	Id string `bson:"id" json:"id"`
}

type AdminParam struct {
	Username string `json:"username" query:"username"`
	Password string `json:"password" query:"password"`
}

type Search struct {
	Type int         `json:"type" bson:"type"`
	Data interface{} `json:"data" bson:"data"`
}

type Application struct {
	Id   string `bson:"id" json:"id"`
	Type int    `bson:"type" json:"type"`
}
